﻿using System.Threading.Channels;


Console.Title = "For循环删除集合中的元素";

List<string> list
 = new List<string>() { "red", null, "black", "black", "blue", "yellow", "white" };


//其中的一个black没有移除掉
//for (int i = 0; i < list.Count; i++)
//{
//    if (list[i].Equals("black"))
//    {
//        list.Remove("black");
//    }
//}


for (int i = list.Count - 1; i >= 0; i--)
{
    //这样写法，遇见null的时候，程序会报错
    //if (list[i].Equals("black"))
    //{
    //    list.Remove("black");
    //}

    //这样写法，遇见null的时候，程序正常运行
    if ("black".Equals(list[i]))
    {
        list.Remove("black");
    }
}

list.ForEach(p => Console.WriteLine(p));


Console.WriteLine("------");

List<int> intList = new List<int> { 1, 2, 3, 2, 2, 2, 3, 4, 5 };
//for(int i =0;i < intList.Count; i++)
//{
//    if(intList[i].Equals(2))
//    {
//        intList.Remove(2);
//    }
//}


for (int i = intList.Count - 1; i >= 0; i--)
{
    if (intList[i].Equals(2))
    {
        intList.Remove(2);
    }

}

intList.ForEach(p => Console.WriteLine(p));

Console.ReadLine();